Traditional mainframe computer configurations provided for user interface to the computer through computer terminals which were directly connected by wires to ports of the mainframe computer. As computing technology has evolved, processing power has typically evolved from a central processing center with a number of relatively low-processing power terminals to a distributed environment of networked processors. Examples of this shift in processing include local or wide area computer networks which interconnect individual workstations where each workstation has substantial independent processing capabilities. This shift may be further seen in the popularity of the Internet which interconnects many processors and networks of processors through devices such as, for example, routers. This type of network environment is often referred to as a client-server environment with client stations coupled to and supported by one or more server stations.
In the modern distributed processing computer environment, control over software, such as application programs, is more difficult than where a mainframe operated by an administrator is used, particularly for large organizations with numerous client stations and servers distributed widely geographically and utilized by a large number of users. Furthermore, individual users may move from location to location and need to access the network from different client stations at different times. The networked environment increases the challenges for a network administrator in maintaining proper licenses for existing software and deploying new or updated applications programs across the network.
One such distributed network environment where new or updated application programs are deployed across the network includes a server, referred to as a network management server, configured to deliver software applications (such as upgrades and patches) to computers, referred to as client stations, via one or more other servers. Typically, the network management server installs the software on these client stations based solely on a pre-determined schedule. For example, the network management server may install upgrades to the client stations at a particular time of day, e.g., 3 am on a Saturday. However, the network management server does not consider what is termed herein as the “resource state” of the systems involved in the deployment of the software, such as the processor usage of the network management server or the processor usage of the target client station. Further, the network management server does not consider what is termed herein as “environmental conditions” such as network capability (e.g., bandwidth usage), access (e.g., time of day pricing structure for connectivity,) and performance problems with the client stations (e.g., work order ticket to correct a problem that the user of the client station is experiencing).
By not considering the resource state of the systems involved in the deployment of the software or the environmental conditions, the network management server may deploy an application to a client station when it may be an inopportune time. For example, the network management server may be scheduled to deploy an application onto a client station at 15:00 hours on Saturday. However, if the network management server or one of the servers through which the application is being deployed is experiencing at that time a virus attack, then it may be advantageous to delay the deployment of the software when the server is more capable of handling the deployment. Referring to the above example, if the target client station is currently experiencing performance problems at 15:00 hours on Saturday, then it may be advantageous to delay the deployment of the software until when the target client station is more capable of handling the deployment.
Hence, if the resource state of the systems involved in the deployment of the software and environmental conditions were taking into consideration, then software may be deployed on the client stations by the network management server more effectively. Other benefits may include reduction in outages, better end user performance and so forth.
Therefore, there is a need in the art to deploy software based upon the scheduled time to deploy the software, the dynamic resource state of the systems involved in the deployment of the software as well as based upon the environmental conditions.